package itheima01;

import org.junit.Test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

/*
    开发步骤
    1.注册驱动
    2.获得连接.

    3. 获得执行sql语句的对象
        java.sql.Connection接口: 我们拿到的是实现类对象
        成员方法:
            public Statement createStatement() : 创建一个 Statement 对象,用来执行sql语句
            返回值类型:
                java.sql.Statement接口: 必然返回实现类对象,用来执行sql语句的,返回结果
                成员方法:
                    public int executeUpdate(String sql) : 执行给定 SQL 语句，只能执行增,删,改
                        参数:
                           String sql: sql语句
                        返回值类型:
                            int: 代表影响的行数


        学生成绩表scores:
        sid: 学生成绩的id
        score: 成绩
        sname: 课程
        use day18;
        CREATE TABLE scores(
            sid INT PRIMARY KEY,
            score INT,
            sname VARCHAR(200)
        );

    JDBC操作数据库步骤
    1.注册驱动
    2.获取连接Connection对象
    3.获取执行SQL语句的Statement对象
    4.Statement对象执行sql语句
    5.关闭资源

    自己写删除一条记录
 */
public class Demo04JDBC {
    //添加一条记录
    @Test
    public void addOne() throws Exception {
        //1.注册驱动
        Class.forName("com.mysql.jdbc.Driver");
        //2. 获得连接.
        //定义数据库的连接地址
        String url = "jdbc:mysql://localhost:3306/day18";
        //定义用户名
        String userName = "root";
        //定义密码
        String passWord = "root";
        //调用方法,获取到数据库的连接对象
        Connection con = DriverManager.getConnection(url, userName, passWord);
        //3. 获得执行sql语句的对象
        Statement stmt = con.createStatement();

        //定义sql语句
        String sql = "insert into scores(sid,score,sname) values(1,100,'柳岩')";

        //Statement对象调用executeUpdate方法执行sql语句,获取结果
        int result = stmt.executeUpdate(sql);
        if(result>0) {
            System.out.println("添加一条记录成功");
        } else {
            System.out.println("添加一条记录失败");
        }
        //关闭资源
        stmt.close();
        con.close();
    }

    //修改一条记录
    @Test
    public void updateOne() throws Exception {
        //1.注册驱动
        Class.forName("com.mysql.jdbc.Driver");

        //2.获取连接Connection对象
        //定义数据库的连接地址
        String url = "jdbc:mysql://localhost:3306/day18";
        //定义用户名
        String userName = "root";
        //定义密码
        String passWord = "abc";

        Connection con = DriverManager.getConnection(url, userName, passWord);

        //3.获取执行SQL语句的Statement对象,Statement接口的实现类对象
        Statement stmt = con.createStatement();

        //4.Statement对象执行sql语句
        String sql = "update scores set score=60 where sname='柳岩'";
        int result = stmt.executeUpdate(sql);
        if(result>0) {
            System.out.println("修改一条记录成功");
        } else {
            System.out.println("修改一条记录失败");
        }
        //关闭资源
        stmt.close();
        con.close();

    }

}


/*public class Demo04JDBC {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        Class.forName("com.mysql.jdbc.Driver");

        String url="jdbc:mysql://localhost:3306/day18";
        String root="root";
        String password="root";

        Connection connection=DriverManager.getConnection(url,root,password);
        System.out.println(connection);

        //获取执行sql语句的statment接口实现类对象
        Statement statement=connection.createStatement();
        String sql="insert into scores(sid,score,sname) values (1,100,'柳岩')";

        int result =statement.executeUpdate(sql);

        if(result>0){
            System.out.println("执行成功");
        }else{
            System.out.println("执行失败");
        }
        connection.close();
        statement.close();
    }

    @Test
    public void updateOne() throws ClassNotFoundException, SQLException {
        Class.forName("com.mysql.jdbc.Driver");
        String url="jdbc:mysql://localhost:3306/day18";
        String root="root";
        String password="root";

        Connection connection=DriverManager.getConnection(url,root,password);
        System.out.println(connection);

        Statement statement=connection.createStatement();
        String sql="update scores set score='120' where sname='柳岩'";
       int result= statement.executeUpdate(sql);
        if(result>0){
            System.out.println("执行成功");
        }else{
            System.out.println("执行失败");
        }
        connection.close();
        statement.close();

    }
}*/
